In a communications network, information (such as a data stream or data packets) may be transmitted from a source to a destination. The information may be transmitted as a data flow, which is an allocated connection that carries the information between the source and the destination along a path. Typically, a data flow has an associated size (e.g., a particular data flow sends five units of information, such as megabits, per second).
The source and the destination may be nodes in the network. A node represents a device that communicates with the network and through which information may pass, originate, and/or terminate. The nodes may be, for example: computing devices such as personal computers, phones, or tablets; servers such as email servers, data servers, or web servers; routers; switches; and other networking devices.
The data flows may be transmitted over paths in the network. A connection between two nodes is referred to as a “link,” and one or more links may form a path connecting a source and a destination. The paths in the network may connect from the source to the destination using one or more transmission mediums, potentially passing through one or more nodes along the route.
The transmission mediums may be any medium suitable for transmitting information, such as copper wire, fiber optic cable, or radio waves passing through the air, among other options.
Each link is associated with a capacity, which represents the amount of data that the link is capable of accepting at any given time. When one link is unable to accommodate more data flows, subsequent data flows may be allocated to different links. Traffic Engineering relates to the problem of optimizing network routing among different potential communication paths to meet the demands of applications or nodes that transfer data in the network.
As more nodes, data flows, and links are added to the network, it becomes increasingly complicated to allocate paths for different data flows. Choosing the appropriate amount of data to allocate to a given link and balancing the bandwidth of the links in the network with the desire to route each data flow in the fastest, most efficient manner are difficult problems for traffic engineering systems.